Global analyses of bird communities along elevation gradients suggest that bird diversity on arid mountains is primarily limited by water availability, not temperature or altitude. However, the mechanism by which water availability, and subsequently primary productivity, increases bird diversity is still unclear. Here we evaluate two possible mechanisms from species-energy theory. The more individuals hypothesis proposes that a higher availability of resources increases the total number of individuals that can be supported, and therefore the greater number of species that will be sampled. By contrast, the more specialization hypothesis proposes that increasing resource availability will permit specialists to exploit otherwise rare resources, thus increasing total diversity.
This study was conducted with 5 years of surveys of grassland songbird communities along an elevational gradient in British Columbia, Canada:
Using model selection with AIC values can help find the most parsimonious model: in other words, the simplest yet most accurate model to describe these data.
grass<-read.csv("data/grass_data.csv")
Two response variables: diversity (number of species per survey point) and density (number of individuals per survey point) Five predictor variables: elevation, NDVI (Normalized Difference Vegetation Index), live (percent live plant cover), dead (percent dead plant cover), and ground (percent ground cover).
Using the pairs function, the multiple competing hypotheses are plotted out, with each hypothesis being represented in a separate model.
grassdensity <- grass[, c("density", "elevation", "ndvi", "live", "dead", "ground")]
ggpairs(grassdensity) + theme_bw()
There’s several models in this ggpairs plot that seem to show a high level or collinearity. This might not be a big deal, but we need to consider to what degree variables are co-linear (to what degree do they inform us about the same phenomenon of interest). Elevation, ground cover, and ndvi look closely related, and some of the others look fairly linear, which means they are very likely redundant information representing the same phenomenon.
grassmodel <- lm(density ~ elevation + ndvi + live + dead + ground, data=grass)
anova (grassmodel) #coefficients of the full model
## Analysis of Variance Table
##
## Response: density
## Df Sum Sq Mean Sq F value Pr(>F)
## elevation 1 663.3 663.34 9.3049 0.003342 **
## ndvi 1 8.7 8.69 0.1219 0.728118
## live 1 355.6 355.58 4.9879 0.029084 *
## dead 1 0.4 0.40 0.0057 0.940186
## ground 1 413.3 413.35 5.7982 0.018982 *
## Residuals 63 4491.2 71.29
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Using the performance-collinearity check function, we can check our data for multicollinearity:
performance::check_collinearity(grassmodel)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF Increased SE Tolerance
## elevation 2.90 1.70 0.34
## ndvi 3.94 1.99 0.25
## live 2.21 1.49 0.45
## dead 1.90 1.38 0.53
## ground 1.93 1.39 0.52
Multicollinearity is when you know the effect of one predictor, the value of knowing the other predictor is rather low; thus, one of the predictors doesn’t help much in terms of better understanding the model or predicting the outcome. If multicollinearity is a problem, the model would suggest that the predictors in question don’t seems to be reliably associated with the outcome (low estimates, high standard errors), although these predictors actually are strongly associated with the outcome, i.e. indeed might have strong effect.
All five predictors show a low correlation.
Next, I’m going to dredge the model to run all possible variable combinations. This helps decide which combos to run actual analysis on. All should add up to “1” (weight). I want to run my analysis on the models that have less than 2.0 model units from the top-rated model (delta 0.0). These ones have the most “competitive explanatory power”.
When model is dredged, it will show sum of weight and # containing models. Variables with more inclusions may be stronger/more likely to be included/have some kind of effect.
Pairwise comparison figures can help show the relationships between the different variables.
options(na.action = "na.fail") # otherwise blows up with NA values
dredge_grass<-dredge(grassmodel)
dredge_grass
## Global model call: lm(formula = density ~ elevation + ndvi + live + dead + ground,
## data = grass)
## ---
## Model selection table
## (Intrc) dead elvtn grond live ndvi df logLik AICc delta
## 15 11.380 0.02456 -0.1317 -0.191300 5 -242.445 495.8 0.00
## 16 12.410 -0.043520 0.02431 -0.1440 -0.174200 6 -242.263 497.9 2.04
## 31 12.290 0.02111 -0.1232 -0.208400 14.200 6 -242.305 498.0 2.12
## 29 23.620 -0.1366 -0.182500 38.530 5 -243.753 498.5 2.61
## 5 23.220 -0.1414 3 -246.162 498.7 2.85
## 13 27.190 -0.1769 -0.102300 4 -245.108 498.8 3.00
## 7 13.920 0.01187 -0.1046 4 -245.389 499.4 3.56
## 30 24.710 -0.085860 -0.1528 -0.164500 45.260 6 -243.106 499.6 3.72
## 6 26.010 -0.081100 -0.1739 4 -245.497 499.6 3.77
## 32 14.220 -0.061930 0.01898 -0.1362 -0.192800 21.510 7 -241.971 499.8 3.93
## 8 15.690 -0.096370 0.01383 -0.1371 5 -244.446 499.8 4.00
## 11 -1.801 0.03536 -0.146000 4 -245.819 500.3 4.42
## 21 21.580 -0.1246 9.485 4 -246.045 500.7 4.87
## 14 28.190 -0.050210 -0.1905 -0.083530 5 -244.883 500.7 4.87
## 22 23.280 -0.113200 -0.1476 22.140 5 -244.949 500.8 5.01
## 27 2.384 0.02549 -0.193600 33.810 5 -245.011 501.0 5.13
## 3 2.407 0.02340 3 -247.483 501.3 5.49
## 23 13.000 0.01558 -0.1135 -11.510 5 -245.289 501.5 5.69
## 24 16.040 -0.100200 0.01280 -0.1358 3.434 6 -244.439 502.2 6.39
## 12 -1.661 0.030360 0.03483 -0.160900 5 -245.725 502.4 6.56
## 25 15.050 -0.159600 66.490 4 -246.991 502.6 6.76
## 28 2.464 -0.005694 0.02533 -0.192000 34.680 6 -245.008 503.4 7.53
## 19 3.779 0.02000 8.349 4 -247.426 503.5 7.63
## 4 1.996 -0.021860 0.02466 4 -247.427 503.5 7.64
## 17 13.910 38.640 3 -248.621 503.6 7.77
## 26 15.070 -0.029460 -0.152500 69.940 5 -246.917 504.8 8.94
## 18 14.050 -0.056640 47.670 4 -248.348 505.3 9.48
## 20 4.314 -0.043990 0.01916 16.630 5 -247.257 505.5 9.62
## 1 18.140 2 -251.573 507.3 11.49
## 2 16.990 0.057650 3 -251.152 508.7 12.83
## 9 17.320 0.031500 3 -251.459 509.3 13.44
## 10 17.030 0.059060 -0.002667 4 -251.152 510.9 15.09
## weight
## 15 0.250
## 16 0.090
## 31 0.087
## 29 0.068
## 5 0.060
## 13 0.056
## 7 0.042
## 30 0.039
## 6 0.038
## 32 0.035
## 8 0.034
## 11 0.027
## 21 0.022
## 14 0.022
## 22 0.020
## 27 0.019
## 3 0.016
## 23 0.015
## 24 0.010
## 12 0.009
## 25 0.009
## 28 0.006
## 19 0.006
## 4 0.006
## 17 0.005
## 26 0.003
## 18 0.002
## 20 0.002
## 1 0.001
## 2 0.000
## 9 0.000
## 10 0.000
## Models ranked by AICc(x)
There are 32 possible models based on additive combinations of variables (no interaction terms).
I’m going to subset these model and isolate the top competitive model combinations:
#grab equally competitive models
subset(dredge_grass, delta <3)
## Global model call: lm(formula = density ~ elevation + ndvi + live + dead + ground,
## data = grass)
## ---
## Model selection table
## (Intrc) dead elvtn grond live ndvi df logLik AICc delta
## 15 11.38 0.02456 -0.1317 -0.1913 5 -242.445 495.8 0.00
## 16 12.41 -0.04352 0.02431 -0.1440 -0.1742 6 -242.263 497.9 2.04
## 31 12.29 0.02111 -0.1232 -0.2084 14.20 6 -242.305 498.0 2.12
## 29 23.62 -0.1366 -0.1825 38.53 5 -243.753 498.5 2.61
## 5 23.22 -0.1414 3 -246.162 498.7 2.85
## 13 27.19 -0.1769 -0.1023 4 -245.108 498.8 3.00
## weight
## 15 0.410
## 16 0.148
## 31 0.142
## 29 0.111
## 5 0.099
## 13 0.091
## Models ranked by AICc(x)
There are 6 models that could be considered at least close to being equally competitive (having explanatory power that is indistinguishable). The top three models are all more or less within 2 AIC units of each other.
Checking to see which variables are most influential:
importance(dredge_grass)
## ground live elevation ndvi dead
## Sum of weights: 0.89 0.72 0.65 0.35 0.32
## N containing models: 16 16 16 16 16
Percent ground cover, percent live plant cover, and elevation all have fairly high-ranking explanatory power, but NDVI and percent dead plant cover aren’t too far off. All of them are involved in the same number of models.
Just taking a look at each predictor variable against the response variable (density):
g1 <- ggplot(grassmodel, aes(elevation, density, color = elevation)) +
geom_point() +
geom_smooth(method="lm")
g2 <- ggplot(grassmodel, aes(ndvi, density, color = ndvi)) +
geom_point() +
geom_smooth(method="lm")
g3 <- ggplot(grassmodel, aes(live, density, color = live)) +
geom_point() +
geom_smooth(method="lm")
g4 <- ggplot(grassmodel, aes(dead, density, color = dead)) +
geom_point() +
geom_smooth(method="lm")
g5 <- ggplot(grassmodel, aes(ground, density, color = ground)) +
geom_point() +
geom_smooth(method="lm")
g1
g2
g3
g4
g5
Based on the top 3 candidate models, I can now run my linear models including these individual and additive variables.
I can fit the candidate models that will likely best explain any variation in grassland bird density. Given the nature of the response, I’ll use ordinary linear regression.
mod1<-lm(density~elevation+ground+live, data = grass)
mod2<-lm(density~elevation+ground+live+dead, data = grass)
mod3<-lm(density~elevation+ground+live+ndvi, data = grass)
Using the model.sel function, I can do the model selection using Akaike’s information criteria (AIC).
out.put<-model.sel(mod1,mod2,mod3)
out.put
## Model selection table
## (Intrc) elvtn grond live dead ndvi family df
## mod1 11.38 0.02456 -0.1317 -0.1913 gaussian(identity) 5
## mod2 12.41 0.02431 -0.1440 -0.1742 -0.04352 gaussian(identity) 6
## mod3 12.29 0.02111 -0.1232 -0.2084 14.2 gaussian(identity) 6
## logLik AICc delta weight
## mod1 -242.445 495.8 0.00 0.586
## mod2 -242.263 497.9 2.04 0.211
## mod3 -242.305 498.0 2.12 0.203
## Models ranked by AICc(x)
The models are sorted from best (top) to worst (bottom). Looks like mod1, containing an intercept, elevation, percent ground cover, and percent live cover is best with a weight of 0.568. It is 0.586/0.211 = 2.78 times more likely to be the best explanation (hypothesis) for variation in density. When comparing the best model to the third-best model, we get 0.586/0.203 = 2.89 times more likely to be the best explanation (hypothesis).
# select models using Royall's 1/8 rule for strength of evidence
subset(out.put, 1/8 < weight/max(out.put$weight))
## Model selection table
## (Intrc) elvtn grond live dead ndvi family df
## mod1 11.38 0.02456 -0.1317 -0.1913 gaussian(identity) 5
## mod2 12.41 0.02431 -0.1440 -0.1742 -0.04352 gaussian(identity) 6
## mod3 12.29 0.02111 -0.1232 -0.2084 14.2 gaussian(identity) 6
## logLik AICc delta weight
## mod1 -242.445 495.8 0.00 0.586
## mod2 -242.263 497.9 2.04 0.211
## mod3 -242.305 498.0 2.12 0.203
## Models ranked by AICc(x)
Using the 1/8 rule for strength of evidence, we can see that the delta values and weights agree with each other.
sel.table<-as.data.frame(out.put)[2:9]
sel.table$Model<-rownames(sel.table)
sel.table[,2:3]<- round(sel.table[,2:5],2)
sel.table[,4:5]<- round(sel.table[,4:5],2)
names(sel.table)[7] = "K"
names(sel.table)[5] = "NDVI"
names(sel.table)[4] = "% Dead Plants"
names(sel.table)[3] = "% Live Plants"
names(sel.table)[2] = "% Ground Cover"
names(sel.table)[1] = "Elevation"
sel.table$Model<-rownames(sel.table)
sel.table<-sel.table[,c(9,7,1,2,3,4,5,8)]
sel.table
## Model K Elevation % Ground Cover % Live Plants % Dead Plants NDVI
## mod1 mod1 5 0.02456254 -0.13 -0.19 NA NA
## mod2 mod2 6 0.02431162 -0.14 -0.17 -0.04 NA
## mod3 mod3 6 0.02111340 -0.12 -0.21 NA 14.2
## logLik
## mod1 -242.4455
## mod2 -242.2631
## mod3 -242.3048
MA<-model.avg(out.put, revised.var = TRUE)
MA
##
## Call:
## model.avg(object = out.put, revised.var = TRUE)
##
## Component models:
## '123' '1234' '1235'
##
## Coefficients:
## (Intercept) elevation ground live dead ndvi
## full 11.78453 0.02380991 -0.1325452 -0.1911712 -0.00920276 2.88058
## subset 11.78453 0.02380991 -0.1325452 -0.1911712 -0.04352254 14.20212
Model averaging incorporates model selection uncertainty. The parameter estimates for each candidate model are weighted using their corresponding model weights and summed. Two methods for model-averaging: where parameter estimates are averaged over all models in which predictor Xi occurs, and where parameter estimates are averaged over all models, not just those in which predictor Xi occurs. MuMIn function model.avg conducts both types of model averaging and reports the first type of model averaging as “subset” and the second type as “full”.
summary(model.avg(out.put))
##
## Call:
## model.avg(object = out.put)
##
## Component model call:
## lm(formula = <3 unique values>, data = grass)
##
## Component models:
## df logLik AICc delta weight
## 123 5 -242.45 495.84 0.00 0.59
## 1234 6 -242.26 497.88 2.04 0.21
## 1235 6 -242.30 497.96 2.12 0.20
##
## Term codes:
## elevation ground live dead ndvi
## 1 2 3 4 5
##
## Model-averaged coefficients:
## (full average)
## Estimate Std. Error Adjusted SE z value Pr(>|z|)
## (Intercept) 11.784528 7.745784 7.893141 1.493 0.1354
## elevation 0.023810 0.011284 0.011497 2.071 0.0384 *
## ground -0.132545 0.052961 0.053956 2.457 0.0140 *
## live -0.191171 0.082962 0.084519 2.262 0.0237 *
## dead -0.009203 0.038687 0.039276 0.234 0.8147
## ndvi 2.880580 13.747507 13.967050 0.206 0.8366
##
## (conditional average)
## Estimate Std. Error Adjusted SE z value Pr(>|z|)
## (Intercept) 11.78453 7.74578 7.89314 1.493 0.1354
## elevation 0.02381 0.01128 0.01150 2.071 0.0384 *
## ground -0.13255 0.05296 0.05396 2.457 0.0140 *
## live -0.19117 0.08296 0.08452 2.262 0.0237 *
## dead -0.04352 0.07473 0.07617 0.571 0.5677
## ndvi 14.20212 27.76701 28.30204 0.502 0.6158
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Using the same dataset, I’m going to do the same kind of model selection, but looking at my predictor variables and using bird diversity as my response variable.
grassdiversity <- grass[, c("diversity", "elevation", "ndvi", "live", "dead", "ground")]
ggpairs(grassdiversity) + theme_bw()
Elevation looks the most significant, but many of these models look promising.
grassmodel2 <- lm(diversity ~ elevation + ndvi + live + dead + ground, data=grass)
anova (grassmodel2)
## Analysis of Variance Table
##
## Response: diversity
## Df Sum Sq Mean Sq F value Pr(>F)
## elevation 1 23.156 23.1561 17.1319 0.0001054 ***
## ndvi 1 0.561 0.5609 0.4150 0.5217823
## live 1 0.276 0.2762 0.2044 0.6527743
## dead 1 0.039 0.0385 0.0285 0.8664500
## ground 1 0.467 0.4674 0.3458 0.5586006
## Residuals 63 85.153 1.3516
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Only elevation shows significance in an ANOVA of the linear model.
Using the performance-collinearity check function, we can check our data for multicollinearity:
performance::check_collinearity(grassmodel2)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF Increased SE Tolerance
## elevation 2.72 1.65 0.37
## ndvi 3.70 1.92 0.27
## live 2.12 1.45 0.47
## dead 1.87 1.37 0.54
## ground 1.87 1.37 0.53
All five predictors show a low correlation.
options(na.action = "na.fail")
dredge_grass2<-dredge(grassmodel2)
dredge_grass2
## Global model call: lm(formula = diversity ~ elevation + ndvi + live + dead + ground,
## data = grass)
## ---
## Model selection table
## (Intrc) dead elvtn grond live ndvi df logLik AICc
## 3 0.7116 0.004372 3 -105.703 217.8
## 19 1.0600 0.003508 2.121 4 -105.479 219.6
## 4 0.7729 0.0032610 0.004184 4 -105.629 219.9
## 7 0.5066 0.004578 0.001863 4 -105.664 220.0
## 11 0.6710 0.004488 -1.409e-03 4 -105.694 220.0
## 23 0.7318 0.003665 0.004041 2.828 5 -105.318 221.6
## 27 1.0210 0.003661 -5.396e-03 2.830 5 -105.368 221.7
## 17 2.8370 7.435 3 -107.697 221.8
## 20 1.0530 0.0005836 0.003519 2.011 5 -105.477 221.9
## 8 0.4103 0.0052330 0.004471 0.003631 5 -105.506 222.0
## 12 0.6914 0.0044240 0.004411 -3.582e-03 5 -105.578 222.1
## 15 0.4959 0.004631 0.001749 -8.060e-04 5 -105.661 222.3
## 31 0.7149 0.003796 0.003811 -4.937e-03 3.437 6 -105.225 223.8
## 24 0.6565 0.0024850 0.003734 0.004595 2.457 6 -105.288 223.9
## 21 2.7490 0.001419 7.767 4 -107.678 224.0
## 18 2.8410 -0.0017400 7.712 4 -107.682 224.0
## 25 2.8410 -5.158e-04 7.525 4 -107.696 224.0
## 28 0.9965 0.0017570 0.003708 -5.884e-03 2.564 6 -105.352 224.1
## 16 0.3489 0.0062220 0.004667 0.003504 -3.259e-03 6 -105.465 224.3
## 32 0.6013 0.0036480 0.003922 0.004581 -5.858e-03 3.007 7 -105.164 226.2
## 22 2.7690 -0.0012970 0.001156 7.912 5 -107.670 226.3
## 29 2.7530 0.001401 -2.809e-04 7.812 5 -107.677 226.3
## 26 2.8420 -0.0017220 -9.934e-05 7.727 5 -107.681 226.3
## 9 3.0970 2.111e-02 3 -110.996 228.4
## 30 2.7690 -0.0012950 0.001156 -8.730e-06 7.913 6 -107.670 228.7
## 13 3.4750 -0.006777 1.599e-02 4 -110.493 229.6
## 5 4.0950 -0.012330 3 -111.763 229.9
## 10 3.0590 0.0080570 1.645e-02 4 -110.660 229.9
## 2 3.3170 0.0167500 3 -111.921 230.2
## 6 3.7450 0.0101700 -0.008251 4 -111.250 231.1
## 14 3.3770 0.0049380 -0.005437 1.414e-02 5 -110.385 231.7
## 1 3.6520 2 -113.887 232.0
## delta weight
## 3 0.00 0.270
## 19 1.81 0.109
## 4 2.11 0.094
## 7 2.18 0.091
## 11 2.24 0.088
## 23 3.81 0.040
## 27 3.91 0.038
## 17 3.99 0.037
## 20 4.13 0.034
## 8 4.19 0.033
## 12 4.33 0.031
## 15 4.50 0.028
## 31 6.03 0.013
## 24 6.15 0.012
## 21 6.20 0.012
## 18 6.21 0.012
## 25 6.24 0.012
## 28 6.28 0.012
## 16 6.51 0.010
## 32 8.39 0.004
## 22 8.52 0.004
## 29 8.53 0.004
## 26 8.54 0.004
## 9 10.58 0.001
## 30 10.92 0.001
## 13 11.83 0.001
## 5 12.12 0.001
## 10 12.17 0.001
## 2 12.43 0.001
## 6 13.35 0.000
## 14 13.95 0.000
## 1 14.18 0.000
## Models ranked by AICc(x)
There are 32 possible models based on additive combinations of variables (no interaction terms).
I’m going to subset these model and isolate the top competitive model combinations:
subset(dredge_grass2, delta <2)
## Global model call: lm(formula = diversity ~ elevation + ndvi + live + dead + ground,
## data = grass)
## ---
## Model selection table
## (Intrc) elvtn ndvi df logLik AICc delta weight
## 3 0.7116 0.004372 3 -105.703 217.8 0.00 0.712
## 19 1.0600 0.003508 2.121 4 -105.479 219.6 1.81 0.288
## Models ranked by AICc(x)
There are 2 models that are equally competitive.
Checking to see which variables are most influential:
importance(dredge_grass2)
## elevation ndvi ground dead live
## Sum of weights: 0.91 0.35 0.26 0.25 0.25
## N containing models: 16 16 16 16 16
Elevation clearly shows the highest-ranking explanatory power. All of them are involved in the same number of models.
This time I averaged the dredged model, instead of averaging the actual models like I did for the density models.
MA2<-model.avg(dredge_grass2, revised.var = TRUE)
MA2
##
## Call:
## model.avg(object = dredge_grass2, revised.var = TRUE)
##
## Component models:
## '2' '25' '12' '23' '24' '235' '245' '5'
## '125' '123' '124' '234' '2345' '1235' '35' '15'
## '45' '1245' '1234' '12345' '135' '345' '145' '4'
## '1345' '34' '3' '14' '1' '13' '134' '(Null)'
##
## Coefficients:
## (Intercept) elevation ndvi dead ground live
## full 0.9319756 0.003799610 1.289685 0.0007538487 0.0006764014 -0.0006095973
## subset 0.9319756 0.004176175 3.696584 0.0029700671 0.0026439476 -0.0024498648
summary(model.avg(dredge_grass2))
##
## Call:
## model.avg(object = dredge_grass2)
##
## Component model call:
## lm(formula = diversity ~ <32 unique rhs>, data = grass)
##
## Component models:
## df logLik AICc delta weight
## 2 3 -105.70 217.78 0.00 0.27
## 25 4 -105.48 219.58 1.81 0.11
## 12 4 -105.63 219.88 2.11 0.09
## 23 4 -105.66 219.95 2.18 0.09
## 24 4 -105.69 220.01 2.24 0.09
## 235 5 -105.32 221.59 3.81 0.04
## 245 5 -105.37 221.69 3.91 0.04
## 5 3 -107.70 221.76 3.99 0.04
## 125 5 -105.48 221.91 4.13 0.03
## 123 5 -105.51 221.97 4.19 0.03
## 124 5 -105.58 222.11 4.33 0.03
## 234 5 -105.66 222.28 4.50 0.03
## 2345 6 -105.22 223.80 6.03 0.01
## 1235 6 -105.29 223.93 6.15 0.01
## 35 4 -107.68 223.98 6.20 0.01
## 15 4 -107.68 223.99 6.21 0.01
## 45 4 -107.70 224.02 6.24 0.01
## 1245 6 -105.35 224.06 6.28 0.01
## 1234 6 -105.46 224.28 6.51 0.01
## 12345 7 -105.16 226.16 8.39 0.00
## 135 5 -107.67 226.29 8.52 0.00
## 345 5 -107.68 226.31 8.53 0.00
## 145 5 -107.68 226.32 8.54 0.00
## 4 3 -111.00 228.36 10.58 0.00
## 1345 6 -107.67 228.69 10.92 0.00
## 34 4 -110.49 229.61 11.83 0.00
## 3 3 -111.76 229.90 12.12 0.00
## 14 4 -110.66 229.95 12.17 0.00
## 1 3 -111.92 230.21 12.43 0.00
## 13 4 -111.25 231.13 13.35 0.00
## 134 5 -110.39 231.72 13.95 0.00
## (Null) 2 -113.89 231.96 14.18 0.00
##
## Term codes:
## dead elevation ground live ndvi
## 1 2 3 4 5
##
## Model-averaged coefficients:
## (full average)
## Estimate Std. Error Adjusted SE z value Pr(>|z|)
## (Intercept) 0.9319756 1.0396398 1.0520116 0.886 0.3757
## elevation 0.0037996 0.0018047 0.0018223 2.085 0.0371 *
## ndvi 1.2896852 2.9429089 2.9673840 0.435 0.6638
## dead 0.0007538 0.0050687 0.0051542 0.146 0.8837
## ground 0.0006764 0.0038932 0.0039576 0.171 0.8643
## live -0.0006096 0.0059211 0.0060226 0.101 0.9194
##
## (conditional average)
## Estimate Std. Error Adjusted SE z value Pr(>|z|)
## (Intercept) 0.931976 1.039640 1.052012 0.886 0.37567
## elevation 0.004176 0.001417 0.001441 2.898 0.00376 **
## ndvi 3.696584 3.990818 4.042430 0.914 0.36048
## dead 0.002970 0.009728 0.009904 0.300 0.76426
## ground 0.002644 0.007351 0.007485 0.353 0.72391
## live -0.002450 0.011679 0.011885 0.206 0.83669
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1